1. Field of the Invention
The present invention generally relates to systems having field-programmable gate arrays (FPGAs) and, more particularly, to a programmable-gate-array copy protection method and a system which prevent unauthorized copying of an FPGA program.
2. Description of the Related Art
An optimum method for developing and mass-producing a system for a short period of time is to employ an FPGA that allows a user to change the internal circuit to a user circuit by programming. FPGAs are increasingly becoming widespread on the market. However, as the market expands, systems copied without authority are also found. Reasons behind the scene are that FPGAs are readily available from suppliers/venders and ROMs (read-only memories) in which FPGA programs are stored are also easily copied using ROM writers.
As a copy-protection technology for the FPGAs, patent documents described below have been proposed. In the related technologies, a program and so on are encrypted and transmitted and the encrypted program is decrypted, thereby preventing unauthorized copying.
A system having an FPGA includes, at least, an FPGA and a ROM in which the FPGA program is stored. FIGS. 13 and 14 are block diagrams illustrating copy protection of the related art.
As shown in FIG. 13, Japanese Unexamined Patent Application Publication No. 2003-84853 discloses a system that includes an FPGA 2, a ROM 3 in which an FPGA program is stored, and a complex programmable logic device (CPLD) 5. The CPLD 5 is an integral component for copy protection and that is pre-programmed at a factory. The feature of this arrangement is that the CPLD 5 is connected to only the FPGA 2 but is not connected to the ROM 3 in which the FPGA program is stored.
The CPLD 5 transmits encrypted initial-state data to the FPGA 2, which then decrypts the initial-state data and performs comparison/determination to restrict the operation, thereby preventing unauthorized copying of the system.
As shown in FIG. 14, Japanese Unexamined Patent Application Publication No. 2001-325153 also discloses a system that includes an FPGA 2 and a ROM 3 in which an FPGA program is stored. In this system, a ROM program in which the FPGA program is stored is encrypted and is transmitted to the FPGA 2 and the FPGA 2 decrypts the encrypted program, thereby preventing unauthorized copying.
However, in those related technologies, the ROM program or initial-state data is encrypted and is transmitted to the FPGA and the FPGA decrypts the program or data, thereby protecting unauthorized copying. That is, since the FPGA performs decryption processing and determination processing, purchasing an FPGA having the same decoding function can make an unauthorized copy.